import { configureStore } from '@reduxjs/toolkit'
import slice, { asyncCount } from './slice'

const store = configureStore({
  reducer: {
    zs: slice.reducer,
  },
})

// export type RootState = ReturnType<typeof store.getState>
// 此时RootState接收到的就是store.getState函数的类型
// export type RootState = typeof store.getState
// 此时RootState接收到的就是store.getState这个函数返回值的类型
export type RootState = ReturnType<typeof store.getState>

// AppDispatch就是一个类型别名. 他的值是store.dispatch在ts中的类型 大概为ThunkDispatch&Dispatch, 这个类型表示dispatch中既可以传入函数,也可以传入action对象
export type AppDispatch = typeof store.dispatch

// 导出actionCreator
export const { add } = slice.actions

export { asyncCount }

export default store
